﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Projet_IMA.Environnement;
using System.Drawing;
using Projet_IMA.Base;
using Projet_IMA.Habillage.Material;

namespace Projet_IMA.Object3D
{
    class Ligne : Object3DBase
    {
        private V3 depart; 
        private V3 vecteurDirecteur;
        private Couleur couleur;
        private float longeur;

        public Ligne(V3 depart, V3 vecteurDirecteur, float longeur, Couleur couleur, float pas) : base(pas, null)
        {
            this.depart = depart;
            this.vecteurDirecteur = vecteurDirecteur;
            this.vecteurDirecteur.Normalize();
            this.couleur = couleur;
            this.longeur = longeur;
        }

        protected override void MakeCache()
        {
            List<V3> points = new List<V3>((int)(longeur / pas));
            List<Color> c = new List<Color>((int)(1 / pas * 1 / pas));
            V3 point;

            for (float u = 0; u < longeur; u += pas)
            {
                point = depart + (u * vecteurDirecteur);
                points.Add(point);
                c.Add(Couleur.ToWindowsColor(couleur));
            }

            this.cache.Reset();
            cache.load(points, c);
        }
        
        public override V3 getNormalOfPoint(V3 point)
        {
            return null;
        }
    }   
}

